\documentclass{article}
\usepackage{ae,aecompl}

\usepackage{tabularx}
\usepackage{fullpage}
\usepackage{graphicx}
\usepackage[pdfborder={0 0 0}]{hyperref}

\title{Lennie\\\normalsize Colony Management}
\author{%
Chris Allen, 0703391\\
Douglas Griffith, 0506355\\
Jameson Reed, 0666220
}

\date{}

\begin{document}
\maketitle

\section{Overview}

Dr. Jeremy Simpson, Melissa Allwood, and the Faculty of Human Health \&
Nutritional Sciences were running into a problem when it came to keeping
track of their mice colonies. Their current system thus far was using
spreadsheets to keep track of mice. All work done in the system was manual
and required a computer. The inefficiency of this system was annoying,
but it served their purposes until this opportunity came along. They
needed an application that could keep track of the various mice colonies
and all of their properties. They also needed an application that could
schedule dates were viable mice were available for experimentation
and avoid wasting them. The applications available already were meant
for much larger scale mouse breeding facilities than what the school
had. They needed one more tailored to smaller operations.

Lennie was designed to be a mobile colony management solution for
researchers. It's purpose is to keep accurate properties on all
active mice and correctly schedule them when they are ready for
experimentation. Lennie was designed to be the perfect fit for small
scale breeding facilities and allow researchers to quickly update their
data immediately with devices that they would carry around with them
anyway.

\section{Experience Gained}

This course gave us an introduction to creating and publishing apps
for mobile devices. It took existing knowledge that we knew about web
languages and applied them to mobile application development. The course
eased us through the process from early stages of development to a final
working mobile app.

The team also gained a lot experience when it comes to actually
programming in teams.  It was a new experience for some of us and it
was challenging to determine which skills we best posses and applying
them. In the end we all found our niches in the group and gained a lot
more team based experience. Working in teams also help us practice our
pair programming. We programmed together and asked for help from one
another whenever we ran into problems.

Lastly the course also gave us a lot of experience with writing quality
formalized documentation. It allowed us to put to use the material we
were learning in class and experience first hand how useful that 
documentation is to have when the time comes to start implementation.
These vital industry standard documentation techniques will surely be 
valuable skills for our future endeavours.

\section{Tools}

%Bullets
\begin{itemize}
    \item PhoneGap: A means to compile HTML5/JavaScript applications to
        native mobile device binaries. Also provides a JavaScript library
        to access device functionality from the application. It enabled us
        to deploy to iPhone, BlackBerry, and Android from a single codebase.

    \item PhoneGap Build: A online compilation service for PhoneGap, which
        generates binaries for iPhone, BlackBerry, Android, WebOS, and
        Symbian. It allowed us to deploy for iPhone without owning a
        Macintosh computer, or resorting to a Hackintosh VM.

    \item jQuery / jQueryMobile: JavaScript libraries which help
        manipulate the DOM with ease. We using these libraries to rapidly
        develop a UI for our application.

    \item Google Code / SVN: Google Code provided us with an online
        workspace for our app. It featured an SVN for checking in code,
        a wiki for keeping track of notes, an issues section to log bugs,
        as well as a place to ask questions.

    \item Selenium: Is a web testing tool kit. Users provide Selenium with
        instruction on how to traverse the website and the program will try
        to repeat the steps. This application helped use system test our code.

\item QUnit: Is a JavaScript unit testing API, it allows writing familiar 
    	xUnit style unit tests in JavaScript. It is very compatible with the latest
	HTML technologies and JQuery, and allows easy running of tests in 
	you're preferred browser with a friendly result output. 

    \item Visual Paradigm: A UML design program. It helped us create the
        required diagrams for our documents.

    \item \LaTeX: a programming environment for documents, that allowed us
        to focus on content rather than presentation. The fact that it's a text-based format which is amenable to version control is a nice
        bonus.
\end{itemize}

\section{Challenges and Solutions}

One of the main challenges we faced during this course was trying to deal
with our client's sky high expectations. Dr. Simpson asked for a lot of
different functionality out of Lennie. The team had to describe to him
why some ideas were unfeasible in the amount of time needed. It was hard
because we did not want to disappoint him with our final product but we
just could not deliver all he wanted.

Another challenge faced was dealing with the limited amount of development
time available to us and our inexperience with a lot of the chosen 
development technologies. We overcame this challenge through team 
programming, by meeting up and working as a group we were able 
to logically divide up the work with
each of us becoming experts with a differnt web technology and rely on 
each other to overcome development challenges.

Finally a challenge which had a huge effect on the project was the 
need for the application to work on multiple platforms. Needing to develop
for both the iOS and BBOS meant that we would not be able to meet our time
limitations if we chose to develop with the native language, and as such we ended up using 
web technologies on the PhoneGap platform. Even with PhoneGap providing 
a means of developing once and compiling to each of the platforms, a lot of 
development time was still spent ensuring that the application would function 
and look correct on each the varying devices. This challenge was overcome
through hard work.

\section{Recommendations}

If our team was to do this again we would suggest starting much
earlier. We did not have an idea of when to start and we noticed it was
too late when we did. We developed Lennie in a month when we could have 
started almost two weeks before we did. If we were to do this project again
we should have specifically marked down a specific date to start.

Another recommendation we would suggest is not letting our clients add 
more features to the plan after the inital requirements analysis step. Our original 
idea expanded every single week because our clients had more and more features 
they wanted. We finally stopped allowing new features, but it was
half way into development. Next time we need to set down a firm date for when 
the plan was set and could not be modified.

\end{document}
